package com.vitogiovanni.tobook.utilities;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import com.vitogiovanni.tobook.R;

public class PrenotazioniListViewAdapter extends ArrayAdapter<PrenotazioneItem>{
	
	Context context;
	
	public PrenotazioniListViewAdapter(Context context, int resource,
			List<PrenotazioneItem> objects)
	{
		super(context, resource, objects);
		this.context = context;
	}
	
	private class ViewHolder {
		TextView dataPrenotazione;
        TextView nomeLocale;
        TextView oraPrenotazione;
        TextView numeroPosti;
    }
	
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder holder = null;
        PrenotazioneItem prenotazioneItem = getItem(position);
 
        LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.list_item_prenotazione, null);
            holder = new ViewHolder();
            holder.dataPrenotazione = (TextView) convertView.findViewById(R.id.data_prenotazione);
            holder.nomeLocale = (TextView) convertView.findViewById(R.id.nome_locale_pren);
            holder.oraPrenotazione = (TextView) convertView.findViewById(R.id.ora_prenotazione);
            holder.numeroPosti = (TextView) convertView.findViewById(R.id.numerPosti_pren);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
 
        SimpleDateFormat dateParser = new SimpleDateFormat("dd/MM/yyyy");      
        if(prenotazioneItem.getData().compareTo(new Date())<0){
        	holder.dataPrenotazione.setTextColor(Color.GRAY);
        	holder.nomeLocale.setTextColor(Color.GRAY);
        	holder.oraPrenotazione.setTextColor(Color.GRAY);
        	holder.numeroPosti.setTextColor(Color.GRAY);
        	TextView labelNumPosti = (TextView)convertView.findViewById(R.id.num_posti_label);
        	labelNumPosti.setTextColor(Color.GRAY);
        }
        else{
        	holder.dataPrenotazione.setTextColor(Color.BLACK);
        	holder.nomeLocale.setTextColor(Color.BLACK);
        	holder.oraPrenotazione.setTextColor(Color.BLACK);
        	holder.numeroPosti.setTextColor(Color.BLACK);
        	TextView labelNumPosti = (TextView)convertView.findViewById(R.id.num_posti_label);
        	labelNumPosti.setTextColor(Color.BLACK);
        }
        holder.dataPrenotazione.setText(dateParser.format(prenotazioneItem.getData()));
        holder.nomeLocale.setText(prenotazioneItem.getNomeLocale());
        dateParser = new SimpleDateFormat("HH:mm");
        holder.oraPrenotazione.setText(dateParser.format(prenotazioneItem.getData()));
        holder.numeroPosti.setText(String.valueOf(prenotazioneItem.getNumeroPosti()));
        
		return convertView;
	}
}
